package com.muye.view;

import android.annotation.SuppressLint;
import android.content.Context;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.widget.ScrollView;

/**
 * 弹性ScrollView
 * 
 * @author TangChao
 *
 */
public class SpringBackScrollView extends ScrollView
{
	private static final int MAX_Y_OVERSCROLL_DISTANCE = 500;
	
	private Context mContext;
	
	private int mMaxYOverscrollDistance;
	
	public SpringBackScrollView(Context context)
	{
		super(context);
		mContext = context;
		initBounceScrollView();
	}
	
	public SpringBackScrollView(Context context, AttributeSet attrs)
	{
		super(context, attrs);
		mContext = context;
		initBounceScrollView();
	}
	
	public SpringBackScrollView(Context context, AttributeSet attrs, int defStyle)
	{
		super(context, attrs, defStyle);
		mContext = context;
		initBounceScrollView();
	}
	
	private void initBounceScrollView()
	{
		final DisplayMetrics metrics = mContext.getResources().getDisplayMetrics();
		final float density = metrics.density;
		
		mMaxYOverscrollDistance = (int) (density * MAX_Y_OVERSCROLL_DISTANCE);
	}
	
	@SuppressLint("NewApi")
	protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY,
			int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent)
	{
		return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX,
				mMaxYOverscrollDistance, isTouchEvent);
	}
}